import {reqLoginData} from '../../api/login'
import {session} from '../../api/session'

Component({
  data: {
    account: '',
    password: '',
    isLoginDisabled: true,
    accountError: ''
  },


  methods: {

    // 密码输入验证
    onPasswordInput(e) {
      const value = (e && e.detail && typeof e.detail.value === 'string') ? e.detail.value.trim() : '';
      this.setData({
        password: value,
        isLoginDisabled: !this.data.account || !value
      });
    },

    // 登录验证
    async onLogin() {

      const { account, password } = this.data;
      if (!account || !password) {
        wx.showToast({ title: '请输入账号和密码', icon: 'none' });
        return;
      }

      try {
        // 登录请求
        const loginRes = await reqLoginData(account, password);
        
        // 检查登录响应是否包含token
        if (!loginRes || !loginRes.token) {
          throw new Error('登录响应中未找到token');
        }

        // 先写入 token 再拉取 session
        try { wx.setStorageSync('token', loginRes.token); } catch (e) {}
        const sessionRes = await session('yonghu');
        
        console.log('登录成功，session数据:', sessionRes);
        console.log('session中的密码:', sessionRes.data.password);
        console.log('登录时输入的密码:', password);
        
        // 存储用户信息（不要存储明文密码）
        wx.setStorageSync('userid', sessionRes.data.id);
        wx.setStorageSync('role', sessionRes.data.role);
        
        // 存储完整的session数据到用户信息中
        const userInfo = {
          nickname: sessionRes.data.nickname || sessionRes.data.username,
          avatar: sessionRes.data.avatar || '/static/upload/default-avatar.jpg',
          hasPassword: !!password,
          phone: sessionRes.data.phone || '',
          signature: sessionRes.data.signature || '',
          // 存储完整的session数据
          sessionData: sessionRes.data
        };
        
        console.log('准备存储的用户信息:', userInfo);
        wx.setStorageSync('userInfo', userInfo);
        
        // 验证存储是否成功
        const stored = wx.getStorageSync('userInfo');
        console.log('存储后的用户信息:', stored);

        // 按角色跳转（role: 1=普通用户, 2=医生）
        if (Number(sessionRes.data.role) === 2) {
          try { wx.hideTabBar(); } catch (e) {}
          wx.reLaunch({ url: '/pages/doctor/home/home' });
        } else {
          wx.switchTab({ url: '/pages/index/index' });
        }

      } catch (error) {
        wx.showToast({ 
          title: '登录失败，请检查账号或密码', 
          icon: 'none' 
        });
      }
    },

    onAccountInput(e) {
      const value = (e && e.detail && typeof e.detail.value === 'string') ? e.detail.value.trim() : '';
      const accountValid = this.validateAccount(value);
      
      this.setData({
        account: value,
        accountError: accountValid ? '' : '请输入正确的用户名格式',
        isLoginDisabled: !value || !this.data.password || !accountValid
      });
    },

    // 验证账号格式
    validateAccount(account) {
      if (!account || account.length < 3) {
        return false;
      }
      
      // 用户名验证：^[a-z_][a-z0-9_-]{2,31}$
      const usernameRegex = /^[a-z_][a-z0-9_-]{2,31}$/;
      return usernameRegex.test(account);
    },

    // 注册
    onRegister(e) {
      wx.navigateTo({
        url: '/pages/register/register',
      })
    },


    // 忘记密码处理
    onForgotPassword() {
      wx.navigateTo({
        url: '/pages/login/forgetpassword/forgetpassword',
      })
    }
  },

  // 微信方式登录
  onWechatLogin () {
    
  },

})